<?php

class Admin_InscricoesController extends Zend_Controller_Action
{

    public function init()
    {
        $this->_helper->layout
             ->setLayoutPath(APPLICATION_PATH.'/modules/admin/layouts/scripts')
             ->setLayout('admin');
    }
    
    
    //ACTION: Valida ou invalida uma inscrição
    public function validarInvalidarInscricoesAction() 
    {
        $modInsc    = new Admin_Model_Inscricoes();
        $formulario = new Admin_Form_ValidarInvalidarInscricoes();
        
        // Buscando informações importantes..
        $pagina     = (int)$this->_getParam('page');
        $post       = $this->getRequest()->getPost();
        $conteudo   = ''; // Se houver html será mostrado na view...
        
        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                $data = $modInsc->listarInscricoes($post, $pagina, 100); 
                $motivoInalidacao = $modInsc->motivosInvalidacao();
                
                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('inscricoes/_listar-inscricoes.phtml', array("insc"              => $data, 
                                                                                              "motivoInvalidacao" => $motivoInalidacao));                
             }
        }
        
        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }    
    
    
    //ACTION: Habilita inscrições quando houver
    public function habilitarInscricaoAction() 
    {
        $post       = $this->getRequest()->getPost();
        $formulario = new Admin_Form_HabilitarInscricoes();
        $conteudo   = ''; // Se houver html será mostrado na view...
        
        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                $data = array(); //modelconsultar
                
                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('inscricoes/_listar-inscricoes.phtml', $data);                
             }
        }
        
        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }
    
    
    //ACTION: reabilita inscrições quando houver
    public function reabilitarInscricaoAction() 
    {
        $post       = $this->getRequest()->getPost();
        $formulario = new Admin_Form_ReabilitarInscricoes();
        $conteudo   = ''; // Se houver html será mostrado na view...
        
        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                $data = array(); //modelconsultar
                
                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('inscricoes/_listar-inscricoes.phtml', $data);                
             }
        }
        
        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }
    
    
    //ACTION: Invalida a inscrição de um ou vários candidatos.
    public function invalidarInscricaoAction() 
    {
        $modInscricao   = new Admin_Model_Inscricoes();
        $post           = $this->getRequest()->getPost();
        $selecionados   = $post['selecionados'];
        $acao           = Zend_Filter::filterStatic($post['acao'], 'Digits');
        
        
        if (!empty($post)) {
            $result = $modInscricao->invalidarInscricao($acao, $selecionados);
            
        } else {
            $result = array('type'      => 'erro',
                            'result'    => false,
                            'flashMsg'  => 'As informações necessárias não foram enviadas corretamente.');            
        }
        
        $this->_helper->json($result);
    }
    
    
    //ACTION: função que irá retornar a disciplina de forma dinâmica para um autocomplete
    public function completeDisciplinaAction() 
    {
        $termo              = $this->_getParam('term', 'ATIVID');
        $arrayDisciplinas   = array();
        
        if (strlen($termo) >= 1) {
            $modDisciplinas     = new Admin_Model_Disciplinas();
            $arrayDisciplinas   = $modDisciplinas->listarDisciplinas(strtoupper($termo));
        }
        
        $this->_helper->json($arrayDisciplinas);
    }
    
 
    //ACTION: Action responsável por editar e inserir novos motivos para invalidação de um recurso
    public function manterTiposInvalidacoesAction() 
    {
        $modInscricao = new Admin_Model_Inscricoes();
        $formulario  = new Admin_Form_InvalidacoesManter();
        
        $post                   = $this->getRequest()->getPost();
        $lstMotivosInvalidacao  = $modInscricao->motivosInvalidacao();
        $conteudo               = ''; // Se houver html será mostrado na view...
         
        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                
             }
        }
        
        $this->view->motivosInvalidacoes    = $lstMotivosInvalidacao;
        $this->view->formulario             = $formulario;
        $this->view->resultContent          = $conteudo;
    }
}